
#include "register/tilingdata_base.h"

namespace optiling {
BEGIN_TILING_DATA_DEF(NotEqualTilingData)
   // 基础 tiling 参数定义
  TILING_DATA_FIELD_DEF(uint32_t, totalLength);
  TILING_DATA_FIELD_DEF(uint32_t, tileNum);
  TILING_DATA_FIELD_DEF(uint32_t, ALIGN_NUM);
  TILING_DATA_FIELD_DEF(uint32_t, tiling_size);
  TILING_DATA_FIELD_DEF(uint32_t, block_size);
  TILING_DATA_FIELD_DEF(uint32_t, aivNum);
  TILING_DATA_FIELD_DEF(uint32_t, core_size);
  TILING_DATA_FIELD_DEF(uint32_t, core_remain);

  TILING_DATA_FIELD_DEF(int32_t, y_dimensional);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, y_ndarray);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, x1_ndarray);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, x2_ndarray);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, y_sumndarray);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, x1_sumndarray);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, x2_sumndarray);
  // TILING_DATA_FIELD_DEF(int32_t, CoreDataNum);          // 每个核心的数据数量
  // TILING_DATA_FIELD_DEF(int32_t, finalTileNum);         // 最终分块数
  // TILING_DATA_FIELD_DEF(int32_t, tileDataNum);          // 每个分块的数据数量
  // TILING_DATA_FIELD_DEF(int32_t, TailDataNum);          // 尾块的数据数量（如果存在不完全的块）
  // TILING_DATA_FIELD_DEF(int32_t, x1_dimensional);       // X1 张量的维度信息
  // TILING_DATA_FIELD_DEF(int32_t, x2_dimensional);       // X2 张量的维度信息

  // // 分块信息数组，用于表示在 tiling 操作过程中各个维度的分块
  // TILING_DATA_FIELD_DEF_ARR(int32_t, 20, x1_ndarray);    // X1 的分块信息数组
  // TILING_DATA_FIELD_DEF_ARR(int32_t, 20, x2_ndarray);    // X2 的分块信息数组
  // TILING_DATA_FIELD_DEF_ARR(int32_t, 20, y_ndarray);     // y 输出张量的分块信息数组
   
END_TILING_DATA_DEF;

REGISTER_TILING_DATA_CLASS(NotEqual, NotEqualTilingData)
}
